$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

2. Низови података и линијски дијаграми

У овој лекцији ћеш научити:

  1. како да се крећеш кроз Џупитер радну свеску;
  2. како се записују низови података; и
  3. како се приказују низови података линијским дијаграмима.

2.1. Још мало о Џупитер радној свесци

Џупитер радна свеска се састоји из низа ћелија, а свака ћелија може да садржи текст, математички израз или низ Пајтон наредби. Низ икона при врху стране ти омогућује да бараташ ћелијама Џупитер радне свеске на разне начине.

Дугме Run смо већ користили. Погледајмо сада чему служе још четири дугмета:

Četiri dugmeta

  • Клик на дугме које личи на дискету (прва слева) ће снимити радну свеску.
  • Клик на дугме са знаком + ће додати нову ћелију испод активне ћелије. (Ћелију активираш тако што кликнеш на њу; активна ћелија има ***зелени*** или ***плави*** оквир.)
  • Стрелице на горе и на доле померају радну ћелију за једно место горе или доле.

На пример, читаш овај текст и одједном осетиш снажну жељу да израчунаш вредност израза $1 + \frac 12 + \frac 13 + \frac 14 + \frac 15 + \frac 16 + \frac 17$. Тада треба да кликнеш на ову ћелију (коју управо читаш) и онда на дугме са знаком +. У новој ћелији која ће се појавити испод можеш да унесеш израз, а Пајтон ће га израчунати:

In [1]:
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7
Out[1]:
2.5928571428571425

У осам ћелија које следе наведени су стихови познате енглеске дечије бројалице. Стихови су испретурани. Користећи дугмиће са стрелицама преуреди ћелије тако да добијеш текст бројалице.

Once I caught a fish alive,

Then I let it go again.

Which finger did it bite?

Why did you let it go?

Because it bit my finger so.

This little finger on my right.

One, two, three, four, five,

Six, seven, eight, nine, ten,

2.2. Записивање низова података

Низови података се у Пајтону записују унутар угластих заграда, у облику листе. На пример, оцене неког ученика из једног предмета могу да се запишу као низ овако:

In [2]:
ocene = [2, 4, 5, 3, 5]

Систем није вратио никакав излаз, наравно. Он је само констатовао да променљива ocene сада садржи низ који се састоји од пет бројева. Да бисмо се уверили да је то тако, затражићемо од система да израчуна следећи израз:

In [3]:
ocene
Out[3]:
[2, 4, 5, 3, 5]

Могуће је радити и са низовима стрингова:

In [4]:
predmeti = ["matematika", "srpski", "likovno", "istorija", "fizičko"]

Систем ни овај пут није вратио никакав излаз, већ је само запамтио да променљива predmeti сада садржи низ од пет стрингова (имена предмета). Ево садржаја променљиве predmeti:

In [5]:
predmeti
Out[5]:
['matematika', 'srpski', 'likovno', 'istorija', 'fizičko']

Дужину низа можемо добити позивом уграђене функције len (што је скраћеница енглеске речи length која значи "дужина"):

In [6]:
len(predmeti)
Out[6]:
5

2.3. Приказивање низова података

У наредној ћелији приказан је процењени број становника наше планете у разним историјским периодима, при чему је број људи исказан у милијардама:

In [7]:
godine = [1000,  1500, 1650, 1750, 1804, 1850, 1900, 1930, 1950, 1960, 1974, 1980, 1987, 1999, 2011, 2020, 2023, 2030, 2037, 2045, 2055, 2100]
ljudi  = [0.275, 0.45, 0.5,  0.7,  1,    1.2,  1.6,  2,    2.55, 3,    4,    4.5,  5,    6,    7,    7.8,  8,    8.5,  9,    9.5,  10,   11.2]

Желели бисмо да прикажемо ове податке у виду графикона. Пајтон има разне библиотеке за визуелизацију података, а ми ћемо користити библиотеку која се зове matplotlib.pyplot. Пошто је ово име веома дугачко и компликовано и пошто ће нам требати много функција из те библиотеке нећемо увозити функције једну по једну већ ћемо увести целу библиотеку и при томе јој дати краће име (такорећи, надимак) plt. (Енглеска реч plot значи "исцртати", а plt је скраћено од plot.)

In [8]:
import matplotlib.pyplot as plt

Сада су нам све функције из ове библиотеке доступне. Важно је напоменути да један import важи за целу радну свеску! Дакле, довољно је библиотеку увести једном у радној свесци. Такође је важно рећи да ћемо у новој радној свесци морати поново да "импортујемо" библиотеке које нам требају за рад.

Један импорт по радној свесци!

Ако се забуниш па покушаш библиотеку да импортујеш два пута -- нема бриге. Пајтон се неће бунити, али неће губити време на то да два пута учитава исту библиотеку.

Натраг на цртање графикона. Најједноставнији графикон се може добити овако:

In [9]:
plt.plot(godine, ljudi)
plt.show()
plt.close()

Функција plot(godine, ljudi) каже систему да треба нацртати графикон коме су на хоризонталну осу ($x$-оса) нанети подаци из низа godine, а на вертикалну осу ($y$-оса) подаци из низа ljudi. Функција show потом приказује графикон. (Енглеска реч plot значи "исцртати", а енглеска реч show значи "приказати".) Коначно, функција close завршава рад на графикону (енглеска реч close значи "затвори").

Видимо да су подаци представљени линијом. Зато се ова врста графикона зове линијски графикон.

Пошто нисмо увозили појединачне функције већ смо целу библиотеку увезли под надимком plt, функције plot, show и close морамо да позовемо "пуним презименом и именом": plt.plot, plt.show и plt.close.

У наредном кораку ћемо графикону додати наслов користећи функцију title (енглеска реч title значи "наслов"):

In [10]:
plt.plot(godine, ljudi)
plt.title("Broj stanovnika na Zemlji")
plt.show()
plt.close()

Можемо ставити ознаку и на вертикалну осу да бисмо нагласили да се ради о бројевима који су исказани у милијардама. За то користимо функцију ylabel ("ознака на $y$-оси"; енглеска реч label значи "ознака"):

In [11]:
plt.plot(godine, ljudi)
plt.title("Broj stanovnika na Zemlji")
plt.ylabel("(milijarde)")
plt.show()
plt.close()

Да закључимо: функцијама plot, title и ylabel додајемо податке на графикон, и тек када смо унели све податке које желимо да имамо на графикону цртамо графикон позивом функције show. На крају позивамо функцију close да почисти за нама.

2.4. Задаци

Задатак 1. Следећи програм црта графикон који представља процењени број људи на Земљи у разним периодима:

In [12]:
import matplotlib.pyplot as plt
plt.plot(godine, ljudi)
plt.title("Broj stanovnika na Zemlji")
plt.ylabel("(milijarde)")
plt.show()
plt.close()
  1. Чему служи наредба import ... as ..?
  2. Зашто пишемо plt.plot, а не просто plot?
  3. Чему служи функција plot?
  4. Чему служе функције title и ylabel?
  5. Чему служе функције show и close?

Следеће задатке реши у Џупитеру.

Задатак 2. У наредној ћелији дати су подаци о маси (у килограмима) и дужини/висини (у центиметрима) једног дечака од његовог шестог месеца па до његових 6,5 година.

In [ ]:
merenja   = ["6 mes", "1,5 god", "2,5 god", "3,5 god", "4,5 god", "5,5 god", "6,5 god"]
masaKG    = [5.9,     11.5,      14.8,      20.5,      22.0,      24.2,      29.0     ]
visinaCM  = [62.0,    84.0,      97.0,      115.0,     122.5,     131.5,     135.0    ]

Прикажи једним графиконом како се мењала његова маса, а другим како се мењала његова висина.

Задатак 3. Индекс телесне тежине (енгл. body mass index, BMI) представља количник телесне масе изражене у килограмима и квадрата телесне висине у изражене у метрима:

$$\hbox{BMI} = \frac{\hbox{маса у килограмима}}{(\hbox{висина у метрима})^2}$$

За дечака из Задатка 2 прикажи графиконом промену његовог индекса телесне тежине. Може ти помоћи следећи мали Пајтон програм који рачуна његове индексе телесне тежине за свако мерење.

In [ ]:
BMI = [0, 0, 0, 0, 0, 0, 0]
for i in range(0, 7):
    BMI[i] = masaKG[i] / (visinaCM[i] / 100.0)**2

Задатак 4. Процењује се да је Кина на дан 1.7.2019. имала 1.420.062.022 становника. Број становника у Кини се сваке године повећа за 0,35%. Под претпоставком да се годишњи раст броја становника у Кини неће мењати, приказати графиконом очекивани број становника Кине у наредних десет година.

In [ ]:
 

Задатак 5. Свака држава има организовану службу која пажљиво бележи податке о временским приликама зато што је то важно за саобраћај, пољопривреду, али и све остале привредне гране.

На сајту Републичког хидрометеоролошког завода Србије (http://www.hidmet.gov.rs/) у менију са леве стране кликни на "Метеорологија", па "Климатологија", па на "Нормале". Потом у списку станица за осматрање који се појавио одабери станицу најближу твојој школи, преузми најниже и највише температуре у периоду 1981-2010 (редови "Апсолутни максимум" и "Апсолутни минимум") и прикажи те податке.

In [ ]: